package com.powernode.dataStructure;

import java.util.Arrays;

public class DynamicArray {
    private int size = 0;//逻辑大小
    private int capacity = 8;//最大容量
    private int[] baseArray = new int[capacity];//初始化数组

    /**
     * 在动态数组末尾处添加一个元素
     * @param element
     */
    public void addLast(int element){
//        baseArray[size] = element;
//        size ++;
        add(size,element);
    }

    /**
     * 在动态数组索引处添加一个元素
     * @param index
     * @param element
     */
    public void add(int index, int element){
        if (index < 0 || index > size){
            System.out.println("索引值为负数或超出最大值，请检查");
            return;
        }

        if (index >= 0 && index < size){
            System.arraycopy(baseArray,index,baseArray,index + 1,size-index);
        }
        baseArray[index] = element;
        size ++;
    }

    public int get(int index){
        if (index < 0 || index >= size){
            System.out.println("索引值为负数或超出最大值，请检查");
            return -1;
        }
        return baseArray[index];
    }

    public int[] getAll(){
        return baseArray;
    }

}
